$(document).ready(function() {
    var totalPrice = 0;
    var quantityInputs = $('.quantity-input');
    var totalPriceElement = $('#totalPrice');
    var productCheckboxes = $('tbody input[type="checkbox"]');


    function updateTotal() {
        totalPrice = 0;
        quantityInputs.each(function() {
            var $this = $(this);
            var row = $this.closest('tr'); // 定位到当前行
            var priceCell = row.find('td').eq(3); // 定位到单价单元格
            var quantity = parseInt($this.val(), 10); // 数量
            var priceText = priceCell.text().trim(); // 单价文本
            var price = parseFloat(priceText.replace('￥', '')); // 单价
            var checkbox = row.find('input[type="checkbox"]'); // 找到当前行的复选框

            // 计算小计并更新
            var subTotal = price * quantity;
            row.find('td').eq(5).text('￥' + subTotal.toFixed(2));

            // 如果商品被选中，则累加到总价
            if (checkbox.is(':checked')) {
                totalPrice += subTotal;
            }
        });

        totalPriceElement.text('￥' + totalPrice.toFixed(2));
    }

    quantityInputs.on('change', function() {
        updateTotal();
    });

    // 全选/全不选功能
    var selectAllCheckbox = $('#selectAll');

    // 当全选复选框的状态改变时，更新所有商品复选框的状态，并重新计算总价
    selectAllCheckbox.on('change', function() {
        // 根据全选复选框的状态，设置所有商品复选框的状态
        productCheckboxes.prop('checked', this.checked);
        // 更新总价
        updateTotal();
    });

    // 当任何商品复选框的状态改变时，检查是否所有复选框都已被选中，并更新全选复选框的状态，然后重新计算总价
    productCheckboxes.on('change', function() {
        // 检查是否所有商品复选框都已被选中
        var allChecked = productCheckboxes.length === productCheckboxes.filter(':checked').length;
        // 更新全选复选框的状态
        selectAllCheckbox.prop('checked', allChecked);
        // 更新总价
        updateTotal();
    });

    // 初始化总价计算
    updateTotal();
});